// // messageBox.js
// import { App, createApp, ComponentPublicInstance } from 'vue'
// import MessageBox, { IOptions } from './Index.vue'

// interface IMessageBoxInstance extends ComponentPublicInstance {
//   show: (options: IOptions) => void
//   close: () => void
// }

// export default {
//   install(app: App) {
//     let instance: IMessageBoxInstance | null = null
//     let messageApp: App<Element> | null = null

//     const show = (options: IOptions) => {
//       if (!instance) {
//         const container = document.createElement('div')
//         document.body.appendChild(container)
//         messageApp = createApp(MessageBox)
//         instance = messageApp.mount(container) as IMessageBoxInstance
//       }
//       instance.show(options)
//     }

//     const close = () => {
//       if (instance) {
//         instance.close()
//         setTimeout(() => {
//           messageApp?.unmount()
//           document.body.removeChild(instance!.$el)

//           instance = null
//           messageApp = null
//         }, 300)
//       }
//     }

//     app.config.globalProperties.$messageBox = { show, close }

//     // 同时提供独立的API
//     app.provide('messageBox', { show, close })
//   }
// }


//